package com.guxingke.typecho4j.widget;

import com.guxingke.typecho4j.Constants;
import com.jfinal.log.Logger;

/**
 * widget抽象类，所有组件的父类<br/>
 * widget 拥有数据，拥有数据 的操作方法
 * 
 * @author guxingke
 * */
public abstract class Widget {
	/**
	 * 日志组件，使用了jfinal封装的日志组件
	 * */
	protected Logger logger;

	/**
	 * 运行时配置信息
	 */
	protected Constants constants;

	/**
	 * init方法是widget生命周期的一部分，typecho4j会在程序初始化时调用widget的init方法
	 * */
	public boolean init() {
		initLogger();
		return true;
	}

	/**
	 * 为调用类初始化logger
	 * */
	protected boolean initLogger() {
		logger = Logger.getLogger(getClass());
		if (logger == null) {
			return false;
		}
		return true;
	}

	protected final void setConstants(Constants constants) {
		this.constants = constants;
	}
}
